﻿
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Text;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class ucResponsableSpringSelector : System.Web.UI.UserControl
{
    #region CONSTANTES


    #endregion

    #region PROPERTIES

    public string CodigoResponsableSpring
    {
        get { return hfCodigoResponsableSpring.Value; }
        set { hfCodigoResponsableSpring.Value = value; }
    }

    public string DescripcionResponsableSpring
    {
        get { return hfDescripcionResponsableSpring.Value; }
        set { hfDescripcionResponsableSpring.Value = value; }
    }

    public HiddenField hfCodigoResponsableSpringSel
    {
        get { return hfCodigoResponsableSpring; }
        set { hfCodigoResponsableSpring = value; }
    }
    public HiddenField hfDescripcionResponsableSpringSel
    {
        get { return hfDescripcionResponsableSpring; }
        set { hfDescripcionResponsableSpring = value; }
    }
    public ImageButton imgSelResponsableSpring 
    {
        set { this.imgBuscar = value; }
        get { return this.imgBuscar; }
    }
    #endregion

    #region EVENTOS

    protected void Page_Init(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            Cargar();
            Listar();
        }
    }

    protected void Page_Load(object sender, EventArgs e)
    {

    }

    protected void imgBuscar_Click(object sender, ImageClickEventArgs e)
    {
        Listar();
    }

    protected void butAceptar_Click(object sender, EventArgs e)
    {

    }
    protected void butCancelar_Click(object sender, EventArgs e)
    {

    }

    protected void lvLista_ItemCommand(object sender, ListViewCommandEventArgs e)
    {

    }

    protected void lvLista_ItemDataBound(object sender, ListViewItemEventArgs e)
    {
        if (e.Item.ItemType == ListViewItemType.DataItem)
        {
            HiddenField hfItemCodigo = (HiddenField)e.Item.FindControl("hfItemCodigoResponsableSpring");
            HiddenField hfItemDescripcion = (HiddenField)e.Item.FindControl("hfItemDescripcionSpring");
            HtmlTableRow htr = (HtmlTableRow)e.Item.FindControl("TrFila");
            htr.Attributes.Add("onclick", "fnSelecionarFilaResponsableSpring(this, '" + hfItemCodigo.Value + "', '" + hfItemDescripcion.Value + "')");
        }
    }

    protected void ucpagLista_CambioPagina(object sender, EventArgs e)
    {
        Listar();
    }

    #endregion

    #region METODOS

    public void Inicializar()
    {
    }

    protected void Cargar()
    {
        //Cargar Estado
        Utilitarios Util = new Utilitarios();
        Util.loadCombo(ddlEstado, ListarParametroDetalle(1, 1, Constantes.PARAMETRO_ESTADOREGISTRO), "Descripcion", "ParametroDetalle");
    }

    /// <summary>
    /// Método Lista
    /// </summary>
    /// <returns></returns> 
    public void Listar()
    {
        int intTotalFilas = 0, intFilasXPagina = 0;
        string strEstado = string.Empty, strCodigo = string.Empty, strDescripcion = string.Empty;

        strCodigo = txtCodigo.Text.Trim();
        strDescripcion = txtDescripcion.Text.Trim();
        strEstado = ddlEstado.SelectedValue;

        DataTable dt = ListarResponsableSpring(strCodigo, strDescripcion, strEstado, ucpagLista.NumeroPagina);
        //DataTable dt = ListarPersona(strNombre, "", "S", "", "", strEstado, ucpagLista.NumeroPagina);

        lvLista.DataSource = dt;
        lvLista.DataBind();
        if (dt.Rows.Count > 0)
        {
            intFilasXPagina = Convert.ToInt32(dt.Rows[0]["FilasXPagina"]);
            intTotalFilas = Convert.ToInt32(dt.Rows[0]["TotalFilas"]);
        }
        ucpagLista.TotalRegistros = intTotalFilas;
        ucpagLista.RegistrosPorPagina = intFilasXPagina;
        ucpagLista.EnlazarPaginador();
    }



    #endregion

    #region WEBSERVICES

    /// <summary>
    /// Método Lista estructura
    /// </summary>
    /// <returns>Devuelve un DataSet</returns>
    protected DataTable ListarResponsableSpring(string pstrCodigo, string pstrDescripcion, string pstrEstado, int pinPagina)
    {
        WCResponsableSpring.BEResponsable be = new WCResponsableSpring.BEResponsable();
        be.Codigo = pstrCodigo;
        be.Descripcion = pstrDescripcion;
        be.Estado = pstrEstado;
        be.Pagina = pinPagina;

        DataTable dt = new DataTable();
        using (var client = new ServiceClient<WCResponsableSpring.IWCResponsable>("BasicHttpBinding_IWCResponsable"))
        {
            var response = client.ServiceOperation<DataTable>(
               c => c.ListarResponsable(be).Tables[0]
               );
            ;
            dt = response;
        }
        return dt;
    }

    /// <summary>
    /// Método Lista Datos de ParametroDetalle
    /// </summary>
    /// <returns>Devuelve un dataTable</returns>
    protected DataTable ListarParametroDetalle(int pintidCompania, int pintIdAplicacion, string pstrParametro)
    {
        WCParametroDetalle.BEParametroDetalle be = new WCParametroDetalle.BEParametroDetalle();
        be.IdCompania = pintidCompania;
        be.IdAplicacion = pintIdAplicacion;
        be.Parametro = pstrParametro;
        DataTable dt = new DataTable();
        using (var client = new ServiceClient<WCParametroDetalle.IWCParametroDetalle>("BasicHttpBinding_IWCParametroDetalle"))
        {
            var response = client.ServiceOperation<DataTable>(c => c.Listar(be).Tables[0]);
            dt = response;
        }
        return dt;
    }
    #endregion WEBSERVICES
}
